listbase: Compute rubberband region on-demand
authorBenjamin Otte <otte@redhat.com>
Fri, 26 Jun 2020 00:56:38 +0000 (02:56 +0200)
committerBenjamin Otte <otte@redhat.com>
Fri, 26 Jun 2020 05:13:32 +0000 (07:13 +0200)
commita5949960bcfe62a810c9fa7d42729d614602f7e2
treecad90e098372876d33f56c277067e17a3ac846a3
parentec4a48909356ca4c764beb3d57f8da957894d53f
listbase: Compute rubberband region on-demand

Instead of storing the active items as we go, compute the affected items
whenever the rubberband changes and in particular when the rubberband
ends.
That way, the rubberband is guaranteed to select a rectangle even
after scrolling very far.

This is achieved by having a get_items_in_rect() vfunc that selects all
the items in the rubberbanded rectangle and returns them as a bitset.
gtk/gtkgridview.c
gtk/gtklistbase.c
gtk/gtklistbaseprivate.h
gtk/gtklistview.c